Брандмауэр Windows

    обратный апостроф ` ставить только в конце строки, чтобы переносить команду
  1. Закрыть порт 135 tcp

    New-NetFirewallRule -DisplayName "Block_TCP_135_Internet" ` -Direction Inbound -Protocol TCP -LocalPort 135 -Action Block

  2. Закрыть диапазон портов tcp

    Можно в одном правиле Windows Firewall указать диапазон портов. Закрываем все TCP-порты с 1 по 442 одним правилом:
    New-NetFirewallRule -DisplayName "Block_TCP_1-442_Internet" `
        -Direction Inbound `
        -Protocol TCP `
        -LocalPort 1-442 `
        -Action Block `
        -Enabled True
    

    Закрываем все потры, кроме 443 и 3389 tcp

    New-NetFirewallRule -DisplayName "Block_TCP_CustomRanges" `
        -Direction Inbound `
        -Protocol TCP `
        -LocalPort 1-442,444-3388,3390-64535 `
        -Action Block `
        -Enabled True
    

    Разрешить доступ к 3389 только с IP 121.172.72.4 и 223.27.72.4

    -InterfaceAlias "WAN" - указать, к какому интенрфейсу применить парвило
    # Список разрешённых IP
    $AllowedIPs = "121.172.72.4","223.27.72.4"
    
    foreach ($ip in $AllowedIPs) {
        New-NetFirewallRule -DisplayName "Allow_RDP_$ip" `
            -Direction Inbound `
            -Protocol TCP `
            -LocalPort 3389 `
            -RemoteAddress $ip `
            -Action Allow `
            -Enabled True `
            -InterfaceAlias "WAN"
    }
    

    Узнать имя интерфейса

    Get-NetIPAddress | Select-Object InterfaceAlias, IPv4Address, PrefixLength

  3. Открыть порт 3000 tcp

    New-NetFirewallRule -DisplayName "Allow TCP Port 3000" -Direction Inbound -Protocol TCP -LocalPort 3000 -Action Allow

  4. Проверить правило

    Проверить правило по порту 3000 tcp в брандмауэре Windows ждать результат около минуты
    Get-NetFirewallRule | Where-Object {
       ($_ | Get-NetFirewallPortFilter | Where-Object {
       $_.LocalPort -eq 3000 -and $_.Protocol -eq "TCP"
         })}
    
  5. Ищем по части имени

    Например, если ищете правила с «3000» в названии:

    Get-NetFirewallRule | Where-Object DisplayName -like "*3000*"

  6. Быстрая проверка по имени

    если создавали как "Allow TCP Port 3000"

    Get-NetFirewallRule -DisplayName "Allow TCP Port 3000" | Get-NetFirewallPortFilter

  7. Отобразить имена всех правил брандмауэра Windows

    Get-NetFirewallRule | Select-Object DisplayName